1. Field of the Invention
This invention relates to the field of data processing. More particularly, this invention relates to data processing systems that include a register bank having a plurality of registers that store operand values to be used by an execution unit in performing a data manipulation under program instruction control.
2. Description of the Prior Art
It is known to provide data processing systems having a register bank made up of a plurality of registers each storing data values to be manipulated or to control manipulation. The operand values within these registers are supplied to an execution unit via read ports of the register bank with the result being written back via one or more write ports to the register bank. Considerations of circuit layout and area vs cost and/or speed mean that it is desirable to provide a limited number of read ports from the register bank that can provide simultaneous read access to different registers within the register bank. Certain program instructions may require more input operands to be read from the register bank than there are available read ports to read those operands within a single read cycle. In this case, instruction execution is slowed by the need to provide multiple read cycles of the register bank.
An example of a data processing system of the above type is the ARM7 microprocessor produced by Advanced RISC Machines Limited of Cambridge, England. This microprocessor has a register bank having two read ports. However, some program instructions require three input operands to be read from the registers of the resister bank. An example of such a program instruction is one that multiplies the contents of two registers together with one of those input operands to be multiplied being first shifted by an amount that is specified as a data value stored within another register of the register bank. In this case, two read cycles are required to recover the three necessary input operands from the register bank via the two read ports.